package com.hyfrogx.modules.push.param.android;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;

import javax.validation.constraints.NotNull;

/**
 * @ClassName PayloadBody
 * @Description TODO
 * @Author yangjun
 * @date 2019/12/10 11:12
 * @Version 1.0
 **/
@Data
public class AndroidPayloadBody {

    @NotNull
    private String ticker;// 必填，通知栏提示文字

    @NotNull
    private String title;// 必填，通知标题

    @NotNull
    private String text; // 必填，通知文字描述

    // 自定义通知图标:
    // 可选，状态栏图标ID，R.drawable.[smallIcon]，
    // 如果没有，默认使用应用图标。
    // 图片要求为24*24dp的图标，或24*24px放在drawable-mdpi下。
    // 注意四周各留1个dp的空白像素
    private String icon;

    // 可选，通知栏拉开后左侧图标ID，R.drawable.[largeIcon]，
    // 图片要求为64*64dp的图标，
    // 可设计一张64*64px放在drawable-mdpi下，
    // 注意图片四周留空，不至于显示太拥挤
    private String largeIcon;

    // 可选，通知栏大图标的URL链接。该字段的优先级大于largeIcon。
    // 该字段要求以http或者https开头。
    private String img;

    // 可选，通知声音，R.raw.[sound]。
    // 如果该字段为空，采用SDK默认的声音，即res/raw/下的
    // umeng_push_notification_default_sound声音文件。如果
    // SDK默认声音文件不存在，则使用系统默认Notification提示音。
    private String sound;

    // 自定义通知样式:
    // 可选，默认为0，用于标识该通知采用的样式。使用该参数时，
    // 开发者必须在SDK里面实现自定义通知栏样式。
    private String builder_id;

    // 可选，收到通知是否震动，默认为"true"
    @Value("true")
    private Boolean play_vibrate;

    // 可选，收到通知是否闪灯，默认为"true"
    @Value("true")
    private Boolean play_lights;

    // 可选，收到通知是否发出声音，默认为"true"
    @Value("true")
    private Boolean play_sound;

    // 点击"通知"的后续行为，默认为打开app。
    //   "go_app": 打开应用
    //   "go_url": 跳转到URL
    //   "go_activity": 打开特定的activity
    //   "go_custom": 用户自定义内容。
    private String after_open;

    // 当after_open=go_url时，必填。
    // 通知栏点击后跳转的URL，要求以http或者https开头
    private String url;

    // 当after_open=go_activity时，必填。
    // 通知栏点击后打开的Activity
    private String activity;

    // 当display_type=message时, 必填
    // 当display_type=notification且
    // after_open=go_custom时，必填
    // 用户自定义内容，可以为字符串或者JSON格式。
    private String custom;


}
